/**
 * 
 */
package com.huarui.desktop.dao.impl;

import java.util.HashMap;
import java.util.List;

import org.ewaf.framework.dao.impl.BaseSimpleDao;
import org.ewaf.framework.model.PagingSummary;

import com.huarui.desktop.dao.JsModuleDao;
import com.huarui.desktop.model.JsModule;

/**
 * @author peng.sunp
 * 
 */
public class JsModuleDaoImpl extends BaseSimpleDao implements JsModuleDao {

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * com.huarui.desktop.dao.JsModuleDao#insertJsModule(com.huarui.desktop.
	 * model.JsModule)
	 */
	@Override
	public void insertJsModule(JsModule jsModule) {
		getSqlMapClientTemplate().insert(namespace + ".insertJsModule", jsModule);
	}

	@Override
	public void updateJsModule(JsModule jsModule) {
		getSqlMapClientTemplate().update(namespace + ".updateJsModule", jsModule);
		
	}
	@SuppressWarnings("unchecked")
	public List<JsModule> selectJsModules(JsModule jsModule, PagingSummary summary) {
		HashMap<String, Object> params = new HashMap<String, Object>();

		if (jsModule != null) {
			params.put("moduleId", jsModule.getModuleId());
			params.put("permissionId", jsModule.getPermissionId());
			if (jsModule.getLauncher() != null) {
				params.put("launcher.text", jsModule.getLauncher().getText());
			}
		}
		params.put("start", summary.getStart());
		params.put("limit", summary.getLimit());
		return (List<JsModule>) getSqlMapClientTemplate().queryForList(namespace + ".selectJsModules", params);
	}

	public int selectJsModulesCount(JsModule jsModule) {
		HashMap<String, Object> params = new HashMap<String, Object>();
		if (jsModule != null) {
			params.put("moduleId", jsModule.getModuleId());
			params.put("permissionId", jsModule.getPermissionId());
			if (jsModule.getLauncher() != null) {
				params.put("launcher.text", jsModule.getLauncher().getText());
			}
		}
		return (Integer) getSqlMapClientTemplate().queryForObject(namespace + ".selectJsModulesCount", params);

	}

	public void deleteAllJsModule() {
		getSqlMapClientTemplate().delete(namespace + ".deleteAllJsModule");

	}



}
